[INFO] cloning repository https://github.com/QuentinMallet/agentic-kb
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/QuentinMallet/agentic-kb" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FQuentinMallet%2Fagentic-kb", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FQuentinMallet%2Fagentic-kb'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e87dbbfdc3687b1dbc88b1edc3a54f418bf1fa02
[INFO] checking QuentinMallet/agentic-kb against try#d8be25549d5418405531341b4be6d8538fc3c42e for pr-156160
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FQuentinMallet%2Fagentic-kb" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/QuentinMallet/agentic-kb
[INFO] finished tweaking git repo https://github.com/QuentinMallet/agentic-kb
[INFO] tweaked toml for git repo https://github.com/QuentinMallet/agentic-kb written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/QuentinMallet/agentic-kb on toolchain d8be25549d5418405531341b4be6d8538fc3c42e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d8be25549d5418405531341b4be6d8538fc3c42e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/QuentinMallet/agentic-kb already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d8be25549d5418405531341b4be6d8538fc3c42e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 924a0a5ea1ce6280c0df221e672ff229b2f84bb5d85c3caf45989c14e9c76b8d
[INFO] running `Command { std: "docker" "start" "924a0a5ea1ce6280c0df221e672ff229b2f84bb5d85c3caf45989c14e9c76b8d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "924a0a5ea1ce6280c0df221e672ff229b2f84bb5d85c3caf45989c14e9c76b8d" "/opt/rustwide/cargo-home/bin/cargo" "+d8be25549d5418405531341b4be6d8538fc3c42e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "924a0a5ea1ce6280c0df221e672ff229b2f84bb5d85c3caf45989c14e9c76b8d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "924a0a5ea1ce6280c0df221e672ff229b2f84bb5d85c3caf45989c14e9c76b8d" "/opt/rustwide/cargo-home/bin/cargo" "+d8be25549d5418405531341b4be6d8538fc3c42e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]    Compiling pulp v0.22.2
[INFO] [stderr]     Checking pulp-wasm-simd-flag v0.1.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]    Compiling openssl-sys v0.9.116
[INFO] [stderr]     Checking yoke v0.8.2
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]    Compiling onig_sys v69.9.3
[INFO] [stderr]     Checking typed-path v0.12.3
[INFO] [stderr]    Compiling owo-colors v4.3.0
[INFO] [stderr]    Compiling eyre v0.6.12
[INFO] [stderr]     Checking ring v0.17.14
[INFO] [stderr]     Checking clap_builder v4.6.0
[INFO] [stderr]     Checking dyn-stack v0.13.2
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking addr2line v0.25.1
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]     Checking object v0.37.3
[INFO] [stderr]    Compiling libsqlite3-sys v0.28.0
[INFO] [stderr]    Compiling fs-err v3.3.0
[INFO] [stderr]     Checking winnow v1.0.3
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]    Compiling esaxx-rs v0.1.10
[INFO] [stderr]     Checking rustc-demangle v0.1.27
[INFO] [stderr]    Compiling openssl v0.10.80
[INFO] [stderr]     Checking indenter v0.3.4
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]     Checking rustls-webpki v0.103.13
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]     Checking toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking rand_distr v0.5.1
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking zip v7.2.0
[INFO] [stderr]     Checking safetensors v0.7.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]     Checking serde_spanned v1.1.1
[INFO] [stderr]     Checking toml_writer v1.1.1+spec-1.1.0
[INFO] [stderr]     Checking winnow v0.7.15
[INFO] [stderr]     Checking compact_str v0.9.0
[INFO] [stderr]     Checking clap v4.6.1
[INFO] [stderr]     Checking spm_precompiled v0.1.4
[INFO] [stderr]     Checking hashlink v0.9.1
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking float8 v0.6.0
[INFO] [stderr]     Checking serde_plain v1.0.2
[INFO] [stderr]     Checking dary_heap v0.3.9
[INFO] [stderr]     Checking secrecy v0.10.3
[INFO] [stderr]    Compiling abscissa_derive v0.9.0
[INFO] [stderr]     Checking unicode-normalization-alignments v0.1.12
[INFO] [stderr]     Checking semver v1.0.28
[INFO] [stderr]     Checking fallible-streaming-iterator v0.1.9
[INFO] [stderr]     Checking canonical-path v2.0.2
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking fallible-iterator v0.3.0
[INFO] [stderr]     Checking plotters-backend v0.3.7
[INFO] [stderr]     Checking ciborium-io v0.2.2
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking rayon-cond v0.4.0
[INFO] [stderr]     Checking plotters-svg v0.3.7
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking uuid v1.23.1
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking fs2 v0.4.3
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking anes v0.1.6
[INFO] [stderr]     Checking oorandom v11.1.5
[INFO] [stderr]     Checking proptest v1.11.0
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking fancy-regex v0.17.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking toml v0.9.12+spec-1.1.0
[INFO] [stderr]     Checking onig v6.5.3
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking tokenizers v0.21.4
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking backtrace v0.3.76
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stderr]     Checking color-eyre v0.6.5
[INFO] [stderr]     Checking ureq v2.12.1
[INFO] [stderr]     Checking abscissa_core v0.9.0
[INFO] [stderr]     Checking gemm-common v0.19.0
[INFO] [stderr]     Checking gemm-f32 v0.19.0
[INFO] [stderr]     Checking gemm-c64 v0.19.0
[INFO] [stderr]     Checking gemm-c32 v0.19.0
[INFO] [stderr]     Checking gemm-f64 v0.19.0
[INFO] [stderr]     Checking gemm-f16 v0.19.0
[INFO] [stderr]     Checking gemm v0.19.0
[INFO] [stderr]     Checking candle-core v0.9.2
[INFO] [stderr]     Checking rusqlite v0.31.0
[INFO] [stderr]     Checking candle-nn v0.9.2
[INFO] [stderr]     Checking candle-transformers v0.9.2
[INFO] [stderr]     Checking kb v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `blob_to_f32s` and `f32s_to_blob`
[INFO] [stdout]  --> src/components/db.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     blob_to_f32s, cosine_similarity, decode_emb_blob, decode_f16_blob_into, f32s_to_blob,
[INFO] [stdout]   |     ^^^^^^^^^^^^                                                            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:1255:22
[INFO] [stdout]      |
[INFO] [stdout] 1255 |         ev_rows: Vec<crate::models::Evidence>,
[INFO] [stdout]      |                      ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]     --> src/lib.rs:7:60
[INFO] [stdout]      |
[INFO] [stdout]    7 | #![warn(rust_2018_idioms, trivial_casts, unused_lifetimes, unused_qualifications)]
[INFO] [stdout]      |                                                            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1255 -         ev_rows: Vec<crate::models::Evidence>,
[INFO] [stdout] 1255 +         ev_rows: Vec<Evidence>,
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:1299:29
[INFO] [stdout]      |
[INFO] [stdout] 1299 |     let mut flat_tasks: Vec<crate::models::Evidence> = Vec::new();
[INFO] [stdout]      |                             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1299 -     let mut flat_tasks: Vec<crate::models::Evidence> = Vec::new();
[INFO] [stdout] 1299 +     let mut flat_tasks: Vec<Evidence> = Vec::new();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:1328:54
[INFO] [stdout]      |
[INFO] [stdout] 1328 |                 crossbeam_channel::bounded::<(usize, crate::models::Evidence)>(work_chan_cap);
[INFO] [stdout]      |                                                      ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1328 -                 crossbeam_channel::bounded::<(usize, crate::models::Evidence)>(work_chan_cap);
[INFO] [stdout] 1328 +                 crossbeam_channel::bounded::<(usize, Evidence)>(work_chan_cap);
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/commands/mcp.rs:1409:39
[INFO] [stdout]      |
[INFO] [stdout] 1409 |             let mut verdict_objs: Vec<serde_json::Value> = Vec::new();
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]     --> src/lib.rs:7:60
[INFO] [stdout]      |
[INFO] [stdout]    7 | #![warn(rust_2018_idioms, trivial_casts, unused_lifetimes, unused_qualifications)]
[INFO] [stdout]      |                                                            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1409 -             let mut verdict_objs: Vec<serde_json::Value> = Vec::new();
[INFO] [stdout] 1409 +             let mut verdict_objs: Vec<Value> = Vec::new();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/commands/mcp.rs:1492:39
[INFO] [stdout]      |
[INFO] [stdout] 1492 |             let mut verdict_objs: Vec<serde_json::Value> = Vec::new();
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1492 -             let mut verdict_objs: Vec<serde_json::Value> = Vec::new();
[INFO] [stdout] 1492 +             let mut verdict_objs: Vec<Value> = Vec::new();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/commands/mcp.rs:1601:35
[INFO] [stdout]      |
[INFO] [stdout] 1601 |             let fwd_verdicts: Vec<serde_json::Value> = items.iter().zip(&entry_ids_a).map(|((_, _, _, v), eid)| {
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1601 -             let fwd_verdicts: Vec<serde_json::Value> = items.iter().zip(&entry_ids_a).map(|((_, _, _, v), eid)| {
[INFO] [stdout] 1601 +             let fwd_verdicts: Vec<Value> = items.iter().zip(&entry_ids_a).map(|((_, _, _, v), eid)| {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/commands/mcp.rs:1608:35
[INFO] [stdout]      |
[INFO] [stdout] 1608 |             let rev_verdicts: Vec<serde_json::Value> = items.iter().zip(&entry_ids_b).map(|((_, _, _, v), eid)| {
[INFO] [stdout]      |                                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1608 -             let rev_verdicts: Vec<serde_json::Value> = items.iter().zip(&entry_ids_b).map(|((_, _, _, v), eid)| {
[INFO] [stdout] 1608 +             let rev_verdicts: Vec<Value> = items.iter().zip(&entry_ids_b).map(|((_, _, _, v), eid)| {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/commands/mcp.rs:1790:9
[INFO] [stdout]      |
[INFO] [stdout] 1790 |         std::fs::create_dir_all(&src_dir).unwrap();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1790 -         std::fs::create_dir_all(&src_dir).unwrap();
[INFO] [stdout] 1790 +         fs::create_dir_all(&src_dir).unwrap();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/commands/mcp.rs:1791:9
[INFO] [stdout]      |
[INFO] [stdout] 1791 |         std::fs::write(src_dir.join("ivk.rs"), cited_content).unwrap();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1791 -         std::fs::write(src_dir.join("ivk.rs"), cited_content).unwrap();
[INFO] [stdout] 1791 +         fs::write(src_dir.join("ivk.rs"), cited_content).unwrap();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/commands/mcp.rs:1866:9
[INFO] [stdout]      |
[INFO] [stdout] 1866 |         std::fs::create_dir_all(&src_dir).unwrap();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1866 -         std::fs::create_dir_all(&src_dir).unwrap();
[INFO] [stdout] 1866 +         fs::create_dir_all(&src_dir).unwrap();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/commands/mcp.rs:1867:9
[INFO] [stdout]      |
[INFO] [stdout] 1867 |         std::fs::write(src_dir.join("env.rs"), cited_content).unwrap();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1867 -         std::fs::write(src_dir.join("env.rs"), cited_content).unwrap();
[INFO] [stdout] 1867 +         fs::write(src_dir.join("env.rs"), cited_content).unwrap();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/commands/mcp.rs:2171:46
[INFO] [stdout]      |
[INFO] [stdout] 2171 |                 match serde_json::from_str::<serde_json::Value>(&line) {
[INFO] [stdout]      |                                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2171 -                 match serde_json::from_str::<serde_json::Value>(&line) {
[INFO] [stdout] 2171 +                 match serde_json::from_str::<Value>(&line) {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:587:20
[INFO] [stdout]     |
[INFO] [stdout] 587 |         let opts = crate::components::db::SearchOptions {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 587 -         let opts = crate::components::db::SearchOptions {
[INFO] [stdout] 587 +         let opts = db::SearchOptions {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:598:20
[INFO] [stdout]     |
[INFO] [stdout] 598 |         let conn = crate::components::db::open_db(&paths.db).unwrap();
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 598 -         let conn = crate::components::db::open_db(&paths.db).unwrap();
[INFO] [stdout] 598 +         let conn = db::open_db(&paths.db).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:605:23
[INFO] [stdout]     |
[INFO] [stdout] 605 |         let results = crate::components::db::search_entries(&conn, &embedder, "evidence test", &opts).unwrap();
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 605 -         let results = crate::components::db::search_entries(&conn, &embedder, "evidence test", &opts).unwrap();
[INFO] [stdout] 605 +         let results = db::search_entries(&conn, &embedder, "evidence test", &opts).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:663:20
[INFO] [stdout]     |
[INFO] [stdout] 663 |         let opts = crate::components::db::SearchOptions {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 663 -         let opts = crate::components::db::SearchOptions {
[INFO] [stdout] 663 +         let opts = db::SearchOptions {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:674:20
[INFO] [stdout]     |
[INFO] [stdout] 674 |         let conn = crate::components::db::open_db(&paths.db).unwrap();
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 674 -         let conn = crate::components::db::open_db(&paths.db).unwrap();
[INFO] [stdout] 674 +         let conn = db::open_db(&paths.db).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:675:23
[INFO] [stdout]     |
[INFO] [stdout] 675 |         let results = crate::components::db::search_entries(
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 675 -         let results = crate::components::db::search_entries(
[INFO] [stdout] 675 +         let results = db::search_entries(
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/commands/search.rs:715:9
[INFO] [stdout]     |
[INFO] [stdout] 715 | /         /// Invariant: arbitrary FTS queries don't panic and FTS keywords
[INFO] [stdout] 716 | |         /// are treated as literals, not operators. Quote/backslash escaping
[INFO] [stdout] 717 | |         /// preserves valid FTS5 syntax.
[INFO] [stdout]     | |_________-------------------------------^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SearchOptions` and `open_db_memory`
[INFO] [stdout]    --> src/commands/search.rs:721:45
[INFO] [stdout]     |
[INFO] [stdout] 721 |                 use crate::components::db::{open_db_memory, search_entries, SearchOptions};
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^                  ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]    --> src/commands/search.rs:725:21
[INFO] [stdout]     |
[INFO] [stdout] 725 |                 use std::path::Path;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:727:27
[INFO] [stdout]     |
[INFO] [stdout] 727 |                 let dir = tempfile::tempdir().unwrap();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 727 -                 let dir = tempfile::tempdir().unwrap();
[INFO] [stdout] 727 +                 let dir = tempdir().unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:750:28
[INFO] [stdout]     |
[INFO] [stdout] 750 |                 let conn = crate::components::db::open_db(&paths.db).unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 750 -                 let conn = crate::components::db::open_db(&paths.db).unwrap();
[INFO] [stdout] 750 +                 let conn = db::open_db(&paths.db).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:814:26
[INFO] [stdout]     |
[INFO] [stdout] 814 |         let local_conn = crate::components::db::open_db(&local_paths.db).unwrap();
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 814 -         let local_conn = crate::components::db::open_db(&local_paths.db).unwrap();
[INFO] [stdout] 814 +         let local_conn = db::open_db(&local_paths.db).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:828:20
[INFO] [stdout]     |
[INFO] [stdout] 828 |         let opts = crate::components::db::SearchOptions {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 828 -         let opts = crate::components::db::SearchOptions {
[INFO] [stdout] 828 +         let opts = db::SearchOptions {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:840:23
[INFO] [stdout]     |
[INFO] [stdout] 840 |         let peer_db = crate::config::Paths::from_root(std::path::Path::new(&peer_root_str)).db;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 840 -         let peer_db = crate::config::Paths::from_root(std::path::Path::new(&peer_root_str)).db;
[INFO] [stdout] 840 +         let peer_db = Paths::from_root(std::path::Path::new(&peer_root_str)).db;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:841:25
[INFO] [stdout]     |
[INFO] [stdout] 841 |         let peer_conn = crate::components::db::open_db(&peer_db).unwrap();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 841 -         let peer_conn = crate::components::db::open_db(&peer_db).unwrap();
[INFO] [stdout] 841 +         let peer_conn = db::open_db(&peer_db).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:842:25
[INFO] [stdout]     |
[INFO] [stdout] 842 |         let peer_opts = crate::components::db::SearchOptions {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 842 -         let peer_opts = crate::components::db::SearchOptions {
[INFO] [stdout] 842 +         let peer_opts = db::SearchOptions {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/commands/search.rs:846:32
[INFO] [stdout]     |
[INFO] [stdout] 846 |         let mut peer_results = crate::components::db::search_entries(
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 846 -         let mut peer_results = crate::components::db::search_entries(
[INFO] [stdout] 846 +         let mut peer_results = db::search_entries(
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/commands/stale_check.rs:791:9
[INFO] [stdout]     |
[INFO] [stdout] 791 | /         /// Invariant: STALE, REVIEW, UNREACHABLE buckets are pairwise disjoint.
[INFO] [stdout] 792 | |         /// All entry IDs appear in exactly zero or one bucket.
[INFO] [stdout]     | |_________------------------------------------------------------^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `blob_to_f32s` and `f32s_to_blob`
[INFO] [stdout]  --> src/components/db.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     blob_to_f32s, cosine_similarity, decode_emb_blob, decode_f16_blob_into, f32s_to_blob,
[INFO] [stdout]   |     ^^^^^^^^^^^^                                                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:1255:22
[INFO] [stdout]      |
[INFO] [stdout] 1255 |         ev_rows: Vec<crate::models::Evidence>,
[INFO] [stdout]      |                      ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1255 -         ev_rows: Vec<crate::models::Evidence>,
[INFO] [stdout] 1255 +         ev_rows: Vec<Evidence>,
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:1299:29
[INFO] [stdout]      |
[INFO] [stdout] 1299 |     let mut flat_tasks: Vec<crate::models::Evidence> = Vec::new();
[INFO] [stdout]      |                             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1299 -     let mut flat_tasks: Vec<crate::models::Evidence> = Vec::new();
[INFO] [stdout] 1299 +     let mut flat_tasks: Vec<Evidence> = Vec::new();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:1328:54
[INFO] [stdout]      |
[INFO] [stdout] 1328 |                 crossbeam_channel::bounded::<(usize, crate::models::Evidence)>(work_chan_cap);
[INFO] [stdout]      |                                                      ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1328 -                 crossbeam_channel::bounded::<(usize, crate::models::Evidence)>(work_chan_cap);
[INFO] [stdout] 1328 +                 crossbeam_channel::bounded::<(usize, Evidence)>(work_chan_cap);
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:1474:20
[INFO] [stdout]      |
[INFO] [stdout] 1474 |         let conn = rusqlite::Connection::open_in_memory().unwrap();
[INFO] [stdout]      |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1474 -         let conn = rusqlite::Connection::open_in_memory().unwrap();
[INFO] [stdout] 1474 +         let conn = Connection::open_in_memory().unwrap();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:1932:9
[INFO] [stdout]      |
[INFO] [stdout] 1932 |         std::fs::create_dir_all(root.join("src")).unwrap();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1932 -         std::fs::create_dir_all(root.join("src")).unwrap();
[INFO] [stdout] 1932 +         fs::create_dir_all(root.join("src")).unwrap();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:1933:9
[INFO] [stdout]      |
[INFO] [stdout] 1933 |         std::fs::write(root.join(rel), cited_content).unwrap();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 1933 -         std::fs::write(root.join(rel), cited_content).unwrap();
[INFO] [stdout] 1933 +         fs::write(root.join(rel), cited_content).unwrap();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:2017:48
[INFO] [stdout]      |
[INFO] [stdout] 2017 |     fn snapshot_db_state(conn: &Connection) -> anyhow::Result<DbSnapshot> {
[INFO] [stdout]      |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2017 -     fn snapshot_db_state(conn: &Connection) -> anyhow::Result<DbSnapshot> {
[INFO] [stdout] 2017 +     fn snapshot_db_state(conn: &Connection) -> Result<DbSnapshot> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:2142:9
[INFO] [stdout]      |
[INFO] [stdout] 2142 |         std::fs::create_dir_all(root.join("src")).unwrap();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2142 -         std::fs::create_dir_all(root.join("src")).unwrap();
[INFO] [stdout] 2142 +         fs::create_dir_all(root.join("src")).unwrap();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:2143:9
[INFO] [stdout]      |
[INFO] [stdout] 2143 |         std::fs::write(root.join("src/big.rs"), cited_content).unwrap();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2143 -         std::fs::write(root.join("src/big.rs"), cited_content).unwrap();
[INFO] [stdout] 2143 +         fs::write(root.join("src/big.rs"), cited_content).unwrap();
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `blob_to_f32s`
[INFO] [stdout]     --> src/components/db.rs:2294:29
[INFO] [stdout]      |
[INFO] [stdout] 2294 |         use crate::models::{blob_to_f32s, f32s_to_blob};
[INFO] [stdout]      |                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:2357:14
[INFO] [stdout]      |
[INFO] [stdout] 2357 |         impl crate::components::embedder::Embedder for FixedEmbedder {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2357 -         impl crate::components::embedder::Embedder for FixedEmbedder {
[INFO] [stdout] 2357 +         impl Embedder for FixedEmbedder {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:2358:41
[INFO] [stdout]      |
[INFO] [stdout] 2358 |             fn embed(&self, _: &str) -> anyhow::Result<Vec<f32>> { Ok(self.0.clone()) }
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2358 -             fn embed(&self, _: &str) -> anyhow::Result<Vec<f32>> { Ok(self.0.clone()) }
[INFO] [stdout] 2358 +             fn embed(&self, _: &str) -> Result<Vec<f32>> { Ok(self.0.clone()) }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::models::f32s_to_blob`
[INFO] [stdout]     --> src/components/db.rs:2410:13
[INFO] [stdout]      |
[INFO] [stdout] 2410 |         use crate::models::f32s_to_blob;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:2413:14
[INFO] [stdout]      |
[INFO] [stdout] 2413 |         impl crate::components::embedder::Embedder for FakeEmbedder {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2413 -         impl crate::components::embedder::Embedder for FakeEmbedder {
[INFO] [stdout] 2413 +         impl Embedder for FakeEmbedder {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:2414:41
[INFO] [stdout]      |
[INFO] [stdout] 2414 |             fn embed(&self, _: &str) -> anyhow::Result<Vec<f32>> {
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2414 -             fn embed(&self, _: &str) -> anyhow::Result<Vec<f32>> {
[INFO] [stdout] 2414 +             fn embed(&self, _: &str) -> Result<Vec<f32>> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::models::f32s_to_blob`
[INFO] [stdout]     --> src/components/db.rs:2471:13
[INFO] [stdout]      |
[INFO] [stdout] 2471 |         use crate::models::f32s_to_blob;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:2474:14
[INFO] [stdout]      |
[INFO] [stdout] 2474 |         impl crate::components::embedder::Embedder for FakeEmbedder {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2474 -         impl crate::components::embedder::Embedder for FakeEmbedder {
[INFO] [stdout] 2474 +         impl Embedder for FakeEmbedder {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:2475:41
[INFO] [stdout]      |
[INFO] [stdout] 2475 |             fn embed(&self, _: &str) -> anyhow::Result<Vec<f32>> {
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2475 -             fn embed(&self, _: &str) -> anyhow::Result<Vec<f32>> {
[INFO] [stdout] 2475 +             fn embed(&self, _: &str) -> Result<Vec<f32>> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:2539:14
[INFO] [stdout]      |
[INFO] [stdout] 2539 |         impl crate::components::embedder::Embedder for FakeEmbedder {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2539 -         impl crate::components::embedder::Embedder for FakeEmbedder {
[INFO] [stdout] 2539 +         impl Embedder for FakeEmbedder {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:2540:41
[INFO] [stdout]      |
[INFO] [stdout] 2540 |             fn embed(&self, _: &str) -> anyhow::Result<Vec<f32>> {
[INFO] [stdout]      |                                         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2540 -             fn embed(&self, _: &str) -> anyhow::Result<Vec<f32>> {
[INFO] [stdout] 2540 +             fn embed(&self, _: &str) -> Result<Vec<f32>> {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:2643:24
[INFO] [stdout]      |
[INFO] [stdout] 2643 |         let baseline = std::fs::read_dir("/proc/self/task").map(|d| d.count()).unwrap_or(1);
[INFO] [stdout]      |                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2643 -         let baseline = std::fs::read_dir("/proc/self/task").map(|d| d.count()).unwrap_or(1);
[INFO] [stdout] 2643 +         let baseline = fs::read_dir("/proc/self/task").map(|d| d.count()).unwrap_or(1);
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]     --> src/components/db.rs:2654:32
[INFO] [stdout]      |
[INFO] [stdout] 2654 |                 if let Ok(d) = std::fs::read_dir("/proc/self/task") {
[INFO] [stdout]      |                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]      |
[INFO] [stdout] 2654 -                 if let Ok(d) = std::fs::read_dir("/proc/self/task") {
[INFO] [stdout] 2654 +                 if let Ok(d) = fs::read_dir("/proc/self/task") {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/components/transcript_state.rs:213:9
[INFO] [stdout]     |
[INFO] [stdout] 213 |         std::fs::write(&tmp_path, serde_json::to_vec(&fake_map).unwrap()).unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 213 -         std::fs::write(&tmp_path, serde_json::to_vec(&fake_map).unwrap()).unwrap();
[INFO] [stdout] 213 +         fs::write(&tmp_path, serde_json::to_vec(&fake_map).unwrap()).unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/components/verification.rs:318:21
[INFO] [stdout]     |
[INFO] [stdout] 318 |         let outer = tempfile::NamedTempFile::new().unwrap();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 318 -         let outer = tempfile::NamedTempFile::new().unwrap();
[INFO] [stdout] 318 +         let outer = NamedTempFile::new().unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trivial cast: `&std::string::String` as `&dyn ToSql`
[INFO] [stdout]    --> src/components/db.rs:781:26
[INFO] [stdout]     |
[INFO] [stdout] 781 |                 .map(|s| s as &dyn ToSql)
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: cast can be replaced by coercion; this might require a temporary variable
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:7:27
[INFO] [stdout]     |
[INFO] [stdout]   7 | #![warn(rust_2018_idioms, trivial_casts, unused_lifetimes, unused_qualifications)]
[INFO] [stdout]     |                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trivial cast: `&std::string::String` as `&dyn ToSql`
[INFO] [stdout]    --> src/components/db.rs:781:26
[INFO] [stdout]     |
[INFO] [stdout] 781 |                 .map(|s| s as &dyn ToSql)
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: cast can be replaced by coercion; this might require a temporary variable
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:7:27
[INFO] [stdout]     |
[INFO] [stdout]   7 | #![warn(rust_2018_idioms, trivial_casts, unused_lifetimes, unused_qualifications)]
[INFO] [stdout]     |                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 14s
[INFO] running `Command { std: "docker" "inspect" "924a0a5ea1ce6280c0df221e672ff229b2f84bb5d85c3caf45989c14e9c76b8d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "924a0a5ea1ce6280c0df221e672ff229b2f84bb5d85c3caf45989c14e9c76b8d", kill_on_drop: false }`
[INFO] [stdout] 924a0a5ea1ce6280c0df221e672ff229b2f84bb5d85c3caf45989c14e9c76b8d
